package com.haoze.nurse.service;

import com.github.pagehelper.PageInfo;
import com.haoze.common.response.Result;
import com.haoze.nurse.dto.OrderPageDto;
import com.haoze.nurse.dto.OrdersSignDTO;
import com.haoze.nurse.model.OrdersSignEntity;
import com.haoze.nurse.vo.OrderInfoByInpatNoVo;

import java.util.List;
import java.util.Map;

public interface OrderService {

    /**
     * 单选类型
     */
    String TYPE_SIGNLE_SELECTION = "6";
    /**
     * 多选类型
     */
    String TYPE_MULTIPLE_SELECTION = "7";
    /**
     * 一个住院号只能生成一份病历
     */
    String ONLY_ONE = "0";

    int MAX_ROWS = 20;
    /**
     * 修正诊断 VAR_CODE
     */
    String XIUZHENGZHENDUAN = "xiuzhengzhenduan";
    /**
     * 入院诊断 VAR_CODE
     */
    String RUYUANZHENDUAN = "ruyuanzhenduan";
    /**
     * 初步诊断 VAR_CODE
     */
    String CHUBUZHENDUAN = "chubuzhenduan";
    /**
     * 上级医师签名 VAR_CODE
     */
    String SHANGJIYISHIQIANMING = "shangjiyishiqianming";
    /**
     * 医师签名 varCode
     */
    String YISHIQIANMING = "yishiqianming";
    /**
     * 签名规则varCode
     */
    String QMGZ = "qmgz";

    /**
     * 签名规则 1:医师签名只能本人
     */
    String QMGZ_FIRST = "1";
    /**
     * 不删除
     */
    String NOT_DELETE = "0";

    /**
     * 文件状态 新建
     */
    String FILE_STATUS_INIT = "0";
    /**
     * 文件状态 已提交
     */
    String FILE_STATUS_COMMIT = "1";
    /**
     * 文件状态 已删除
     */
    String FILE_STATUS_DELETE = "6";
    /**
     * 不是首程标志
     */
    String NOT_DUR_DIS = "0";
    /**
     * 入院病程
     */
    String EMR_TYPE_RUYUANBINGCHENG = "301";
    /**
     * 首次病程
     */
    String EMR_TYPE_SHOUCIBINGCHENG = "201";
    /**
     * 讨论记录
     */
    String EMR_TYPE_TAOLUNJILU = "215";
    /**
     * 手术记录
     */
    String EMR_TYPE_SHOUSHUJILU = "701";
    /**
     * 日间手术记录
     */
    String EMR_TYPE_RIJIANSHOUSHUJILU = "703";
    /**
     * 出院记录
     */
    String EMR_TYPE_CHUYUANJILU = "401";
    /**
     * 输血记录
     */
    String EMR_TYPE_SHUXUEJILU = "209";
    String FEMALE = "女性";
    /**
     * 首次病程目录标志
     */
    String RECORD_TYPE = "1";
    String PROFILE_DEV = "dev";
    String MB_WB = "mbwb";
    String TL_JL = "tljl";
    /**
     * 特殊病历字典id
     */
    String MDT_FILE_ID = "b199f8d006ad422b8be0285fd05e970b";
    String WEI_FILE_ID = "580aea55b39d4a05a16c044bb18b9122";
    String DIFF_FILE_ID = "3819adefbabe40668044a4a8e28df741";

    /**
     * 医嘱-分页-app
     * @param pageDto 查询参数
     * @return
     */
    PageInfo<OrderInfoByInpatNoVo> queryPagesList(OrderPageDto pageDto);

    Result orderDetail(String inpatorderdataId, String startDate, String endDate, Integer page, Integer pageSize);

    Result itineraryListNew(List<String> inpatNumList, String orderType, String printFlag, String date);

    Result prints(List<Map<String,Object>> prints);

    Result treatmentList(List<String> inpatNumList, String wardDeptId,String orderType, String date, String recordDate);

    Result printTreatment(List<Map<String,Object>> prints);

    Result treatmentDateList(List<String> inpatNumList,String orderType, String date,String wardDeptId);

    List<Map<String,Object>> printOrder(String type,String inpatNum,Integer page,Integer size,String deptId,String operationFlag,String startTime,String endTime,String inpatorderdataId);
    List<Map<String,Object>> printOrder1(String type,String inpatNum,Integer page,Integer size,String deptId,String operationFlag,String startTime,String endTime,String inpatorderdataId);

    Result printNum(String type,String inpatNum,String deptId,String operationFlag,String startTime,String endTime);

    Result printInfo(String inpatNum);

    Result ordersSign(List<OrdersSignDTO> ordersSignDTO);

    Result sign(String loginName, String userPwd, String comparedUserId, String emrType, String varCode);


    Result getExecuteDetail(String qrCode,String freqData);
}
